add verbosity controls + clean ui - #2193
Conversation
Prime Agent performance — failedPR Overall: 0 regressed · 0 improved · 2 no clear change · 15 unavailable.
Python runtime
Sandbox cost: ~$0.1944 — no inference calls. Methodology and samplesMain resolved at 2026-09-12T01:33:16.366467+00:00. Harness
Failures:
|
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 4065182. Configure here.

Conversations open with assistant text visible, thinking hidden, tools collapsed, and compact per-file change summaries. The configurable Ctrl+O shortcut cycles through overview, thinking plus file diffs, and all output. The selected mode applies to streaming content and restored chats. Thinking renders as dim text without a repeated heading; expanded file diffs start at the normal chat inset while preserving code indentation and line-number gutters. A single status shows “Showing overview”, “Showing details”, or “Showing all output” with the configured expand or collapse shortcut. Unbound shortcuts omit the hint. Transcript rows, including sent and received agent messages, no longer repeat expansion hints.
Background shell completions update an identifiable originating IPython row: a running marker becomes a success check or a failure with its exit code. Matching prefers an exact saved BashHandle PID and command. Assignment-only cells do not save a handle, so a successful simple literal assignment can match by its unique exact full command; repeated commands, conflicting known PIDs, complex launches, and unmatched events retain compact “Background shell command finished” or failure notices. Completion rows share tool-row spacing without an extra gap below. All output shows the complete original notification once at the conversation position where it arrived to the model, after any intervening messages and tool output. The originating command retains its updated completion status but does not duplicate or relocate the notification body. Cell duration remains explicitly labeled as cell timing because completion events do not contain shell duration or output.
Expanded Python input nests directly beneath the tool summary with the same tree gutter as agent messages. The output marker appears beside output instead of input, and both bodies share the same text alignment. Multiline source indentation, syntax colors, error and image output, and full-width file diffs are preserved. The follow-output hint stays centered while scrolling over tabbed or wide-character output.
Assistant prose, thinking, collapsed tool previews, and trailing event details use quieter colors and less decorative bold. Sent and received agent messages keep compact notices in overview and details, with their full message bodies shown only in all output. Their separate Ctrl+P action and shortcut are removed. Multiline Python strings preserve their syntax color across source lines and narrow wrapping, including embedded Markdown and code snippets. Collapsed Python previews select statements outside string bodies. These are presentation changes; saved messages, JSONL traces, model/tool execution, and transport behavior are unchanged.
Validation: 66 focused Python layout, diff, ANSI-wrapping, background-output, and live/reopened chronology tests passed, along with 103 TUI fullscreen/overlay tests and
npm run check. Faux-provider regressions cover notification order, matching and fallback behavior, detail cycling, agent-message visibility, and unchanged saved trace bytes; rendering checks cover syntax colors, narrow wrapping, error and image output, file-diff alignment, and follow-hint alignment.Fixes ENG-6112.
Design context: UI proposals.
Note
Low Risk
Changes are mostly TUI presentation and keybindings; session traces and model/tool execution are unchanged, though background-shell matching logic adds moderate UI edge-case behavior.
Overview
Ctrl+O now cycles three presentation-only modes—overview (hidden thinking, collapsed tools/diffs), details (thinking + file diffs), and all output (full tool bodies and agent messages)—replacing separate Ctrl+J, Ctrl+T, and Ctrl+P toggles and the
hideThinkingBlocksetting. The status bar shows the current mode and expand/collapse shortcut; transcript rows drop repeated shortcut hints.Assistant markdown body uses a new optional
mdBodytheme token (dimmer prose; headings/links/code unchanged). Thinking shows as unlabeled dim text; collapsed tool and Python previews are plain/dim; decorative bold is reduced across the TUI. Expanded file diffs align with normal chat inset without extra summary hints.Background shell completions attach to matching IPython/bash tool rows via PID and command (with ambiguous/unmatched fallbacks), hide compact notices when attached, and show full notifications once at their original timeline position in “all output.”
ShellCompletionComponentandcreateConversationSpacingfix row spacing around hidden thinking, agent messages, and late completions.Python preview/highlighting fixes multiline string handling via
pythonStatementLines; expanded IPython cells nest input under the summary with aligned output gutters.Reviewed by Cursor Bugbot for commit d041b0d. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Replace separate expansion toggles with single
Ctrl+Oconversation-detail cycle and clean up TUI stylingapp.tools.expand(Ctrl+O) action that cycles through overview, details (thinking + file diffs), and all output. Thinking starts hidden and is revealed in the details and all-output states.ShellCompletionComponentto render async background-shell completions. The factory inbuildConversationComponentsmatches completion messages to prior tool executions by PID and command, marking ambiguous matches instead of attaching them.mutedwithdimfor metadata text, removes inline expand/collapse hints, and adds a dedicatedmdBodytheme color (falls back totextwhen unset) for assistant Markdown body.createConversationSpacing, which inspects the current visible component sequence to decide leading blank lines and preceding tool activity, replacing the old staticSpacerandsuppressLeadingSpacelogic.SettingsManagerno longer persists thinking-block visibility;InteractiveModestarts with thinking hidden. ThehiddenThinkingLabelextension hook is retained but deprecated as a no-op. Keybinding migrations map the oldCtrl+P/Ctrl+J/Ctrl+Tactions away;Ctrl+Pis now free for editor cursor-up. ThehideThinkingBlocksetting is removed fromSettingsSelectorComponent.Macroscope summarized d041b0d.